;;; --------------------------------------------------------------------------;
;;; FCOPY.LSP
;;;   Copyright (C) 1990 by Autodesk, Inc.
;;;  
;;;   Permission to use, copy, modify, and distribute this software and its
;;;   documentation for any purpose and without fee is hereby granted.  
;;;
;;;   THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. 
;;;   ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF 
;;;   MERCHANTABILITY ARE HEREBY DISCLAIMED.
;;;
;;; --------------------------------------------------------------------------;
;;; DESCRIPTION
;;;
;;;   This is a programming example.
;;;
;;;   This program takes two ASCII files as arguments, and copies the first   
;;;   file into the second.  If the first file does not exist, an error message 
;;;   is printed, however, if the second file does not exist, it is created.
;;;
;;;   Note that if the second file exists, its data will be overwritten.
;;;
;;;   Usage: (fcopy "infile.ext" "outfile.ext")
;;;
;;; --------------------------------------------------------------------------;

(defun fcopy (in out / ifp ofp l) 
  (cond ((null (setq ifp (open in "r"))) ; try to open in for reading
     (princ "Can't open ")            ; if nil print error message
     (princ in) 
     (princ " for reading.")
    ) 
    (if ifp 
      (progn
        (setq ofp (open out "w"))     ; else open out for writing
        (while (setq l (read-line ifp)) ; read each line from in
          (write-line l ofp)          ; and write it to out
        ) 
        (close ofp)                   ; close both files
        (close ifp)
      )
    )
  ) 
  (princ)
) 

;;; --------------------------------------------------------------------------;



